home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / Timer.mod < prev    next >
Text File  |  1994-08-08  |  2KB  |  113 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Timer.mod $
  4.   Description: Interface to timer.device
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 00:51:23 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. MODULE Timer;
  23.  
  24. (*
  25. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  26. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  27. ** $V- OvflChk       $Z- ZeroVars
  28. *)
  29.  
  30. IMPORT E := Exec;
  31.  
  32. (*
  33. **      $VER: timer.h 36.16 (25.1.91)
  34. **
  35. **      Timer device name and useful definitions.
  36. *)
  37.  
  38. CONST
  39.  
  40. (* unit defintions *)
  41.   unitMicroHZ   * = 0;
  42.   unitVBlank    * = 1;
  43.   unitEClock    * = 2;
  44.   unitWaitUntil * = 3;
  45.   unitWaitEClock* = 4;
  46.  
  47.   name      * = "timer.device";
  48.  
  49. TYPE
  50.  
  51.   TimeValPtr* = CPOINTER TO TimeVal;
  52.   TimeVal* = RECORD
  53.     secs*  : E.ULONG;
  54.     micro* : E.ULONG;
  55.   END; (* TimeVal *)
  56.  
  57.   EClockValPtr* = CPOINTER TO EClockVal;
  58.   EClockVal* = RECORD
  59.     hi* : E.ULONG;
  60.     lo* : E.ULONG;
  61.   END; (* EClockVal *)
  62.  
  63.   TimeRequestPtr* = CPOINTER TO TimeRequest;
  64.   TimeRequest* = RECORD (E.IORequest)
  65.     time* : TimeVal;
  66.   END; (* TimeRequest *)
  67.  
  68. CONST
  69.  
  70. (* ioCommand to use for adding a timer *)
  71.   addRequest  * = E.cmdNonstd;
  72.   getSysTime  * = E.cmdNonstd+1;
  73.   setSysTime  * = E.cmdNonstd+2;
  74.  
  75.  
  76. (*-- Device base variable----------------------------------------------*)
  77.  
  78. TYPE
  79.  
  80.   TimerBasePtr * = CPOINTER TO TimerBase;
  81.   TimerBase * = RECORD (E.Device) END;
  82.  
  83.  
  84. (*-- Device functions -------------------------------------------------*)
  85.  
  86. (*
  87. **      $VER: timer_protos.h 1.6 (25.1.91)
  88. *)
  89.  
  90. LIBCALL (base : TimerBasePtr) AddTime*
  91.   ( VAR dest [8] : TimeVal;
  92.     VAR src  [9] : TimeVal );
  93.   - 42;
  94. LIBCALL (base : TimerBasePtr) SubTime*
  95.   ( VAR dest [8] : TimeVal;
  96.     VAR src  [9] : TimeVal );
  97.   - 48;
  98. LIBCALL (base : TimerBasePtr) CmpTime*
  99.   ( VAR dest [8] : TimeVal;
  100.     VAR src  [9] : TimeVal )
  101.   : INTEGER;
  102.   - 54;
  103. LIBCALL (base : TimerBasePtr) ReadEClock*
  104.   ( VAR dest [8] : EClockVal )
  105.   : E.ULONG;
  106.   - 60;
  107. LIBCALL (base : TimerBasePtr) GetSysTime*
  108.   ( VAR dest [8] : TimeVal );
  109.   - 66;
  110.  
  111.  
  112. END Timer.
  113.